package com.tvserials.notification.parser;

import com.tvserials.notification.dto.Episode;
import com.tvserials.notification.dto.Serial;
import com.tvserials.notification.exceptions.NetworkConnectionException;
import com.tvserials.notification.exceptions.PageParseException;
import com.tvserials.notification.vo.SourceType;
import com.tvserials.notification.vo.TvEpisodeFilterVO;

import java.util.List;

/**
 * Created by Alex on 30.03.2014.
 */
public interface PageParser {
    /**
     * Parse episodes page, filtered based on provided criteria
     *
     * @param filterVO - object with criteria to filter by
     * @return list of episode objects
     * @throws NetworkConnectionException - if failed to access utrl
     */
    public List<Episode> parsePage(TvEpisodeFilterVO filterVO) throws NetworkConnectionException, PageParseException;

    /**
     * Return all available serials
     *
     * @return
     * @throws NetworkConnectionException
     */
    public List<Serial> parseSerialsList() throws NetworkConnectionException;

    public SourceType getSourceType();
}
